package com.lagou.task02;

import java.io.File;
import java.io.FileFilter;
import java.io.IOException;

/**
 *
 * 实现将制定目录中的所有内容删除，包含子目录中的内容都要全部删除
 *
 * */
public class DeleteAllFileTest {

    public static String fileUrl = "/Users/pengxixi/Desktop/java-note/hhd2";

    public static void main(String[] args) {

        // 1.构造 File 类型的对象，和要删除的文件夹关联
        File file = new File(fileUrl);
        if (file.exists()){
            System.out.println("目录存在");
        }else {
            System.out.println("目录不存在");
            System.out.println(file.mkdir() ? "创建成功" : "创建失败");
        }

        // 2.遍历目标文件夹中的所有文件和目录
        deleteAllFile(file);
    }

    public static void deleteAllFile(File file){
        File[] files = file.listFiles();
        for (File tf : files) {
            String name = "";
            if (tf.isDirectory()){
                if (file.length() > 0){
                    deleteAllFile(tf);
                }
                name = "目录";
            }else if (tf.isFile()) {
                name = "文件";
            }

            System.out.println("正在删除" + name + "：" + tf.getName());

            // 绝对路径 + / + 文件名  得到当前文件的路径
            String targetUrl = file.getAbsolutePath() + "/" + tf.getName();
            System.out.println(name + "的绝对路径是：" + targetUrl);

            // 根据文件的路径，创建新的 file 对象并执行删除
            File deleteFile = new File(targetUrl);
            System.out.println(deleteFile.delete() ? "删除成功" : "删除失败");

            System.out.println();

        }
    }
}
